Also posted at The Monastery
All,
I am sure the majority of you enjoy good brain teasers and puzzles. A few years ago, I received a wooden puzzle for Christmas that apparently can be solved in as few as 16 moves (unverified). I have never came close and wanted to see if my fellow monks were up to the challenge.
This is a picture of the starting position. The object of the game is to get the large square (red dot) to the position at the bottom occupied by the 4 small squares (blue dots). You may only move pieces by sliding them.
The challenge is to write a program that will solve the puzzle in the fewest number of moves possible. Graphic solutions are not necessary, but would be cool. Any solution method will be eligible (golfed, regex, bruteforce, etc). The solution must be able to be verified using the real puzzle :-)
Cheers - L~R
Solution
simra on 2005-01-05T02:45:37
Hi,
My mother-in-law has the same game that I've hacked away at every xmas for years. This year I decided I'd cheat and crank it out. At first I thought I'd do it in java but then realized how easy it is to encode the game as a string and use regexps to find legal moves. My solution (which takes 110 moves) is here:
http://www.cs.ubc.ca/user/simra/settingsun/solution.txt
The crufty, ugly perl script is:
http://www.cs.ubc.ca/user/simra/settingsun/ss.plI don't see how the 16 move claim can be realized, even with some compression of moves
R
16 moves was false advertisement
If you read the link from the Monastery that I posted, several people came up with solutions. The 16 move solution was more of 16 milestones so that a person doing it by hand could visually see how to get to the next point. I have a half finished OO solution that I might finish some day.
Cheers
L~R
Setting sun
This website will show you how to get it in 16 moves very simple.
http://www.themandalayboxcompany.com/default.asp?page=products,product.asp?catI
D =12